Ripple control communication is based on superimposing a higher frequency signal, commonly called a ripple signal, onto a lower frequency power signal. For example, ripple control communication is commonly used to transmit data over power lines that are otherwise used to deliver power to homes and businesses. In such a system, the power signals transmitted over the power lines typically have a frequency of 50 Hz or 60 Hz. Ripple control communication can be implemented by superimposing ripple signals having a frequency between 150 Hz and 1600 Hz on these power signals. In a typical implementation the ripple signals would also have significantly smaller amplitude compared to the power signals.
So implemented, ripple control communication can provide a variety of functions. For example, ripple control communication can be implemented to provide communication to and from electric meters used to monitor power usage. In such an implementation the ripple control communication can be used to deliver time of use information, thus facilitating the application of different rates to different times of use. As another example, the ripple control communication can be used to communicate to certain appliances. In this application the communication to appliances can be used to selectively turn on or off the appliances. For example, appliances such as electric water heaters can be selectively turned on and off using ripple control communication as a way for electric utilities to provide load balancing on the power deliver network.
One issue with ripple control communication is the receiving and decoding of data from the superimposed ripple signals. For example, because of the varying distances typically involved, the amplitude of the ripple signals received can vary greatly. Additionally, the frequency of the superimposed ripple signal can periodically vary or otherwise can change over time. Such changes in amplitude can result in the need to periodically recalibrate the ripple control receivers. For example, previous techniques for receiving and decoding data from ripple signals have used static thresholds that require significant calibration. Unfortunately, such calibration may be time consuming and difficult to reliably achieve without input from the user, and thus can lead to reduced data transmission reliability. Thus, what is needed is improved techniques for decoding of data from ripple signals with reduced requirements for calibration and user input.